In personal computer systems, floppy disks provide an inexpensive and easily portable storage medium. In brief, floppy disks allow a user of a computer system to store and recall data (e.g., application programs and associated files) as needed. More specifically, when a user desires to store or recall a particular piece of data to/from a floppy disk, the user simply inserts the desired disk into a floppy disk drive of a personal computer system and invokes a command from an application program (e.g., a save file command). As floppy disks are frequently swapped in and out of the floppy disk drive, personal computer systems use a changeline signal ("changeline") to inform the application program of the possibility that the media contained in the disk drive has changed since the last time the application pro,am accessed the disk contained in the drive. The term "media" refers to physical material (e.g., a disk) that is used for storing information in a computer system. Similarly, the phrase "media uncertain" indicates that the media contained in the drive may have changed since the last access to the floppy disk drive. As will be explained in detail below, a functioning changeline indicates that the media contained in the drive is uncertain.
The floppy disk drive has a floppy disk door which must be opened to insert or remove a disk from the floppy disk drive. The changeline is a hardware signal which is tied to this floppy disk door. When functional, the changeline has an active state and an inactive state. The active state indicates that the floppy disk drive door has been opened since the last time that the floppy disk drive was accessed. Conversely, the inactive state indicates that the floppy disk drive door has not been opened since the last time that the floppy disk drive was accessed. An application program or a device driver can read the state of the changeline through a function provided by a floppy disk controller. A floppy disk controller is a device that serves as an interface between the physical components of the floppy disk drive and software programs (e.g., an application program or device drive). By reading the changeline via the controller, a software program can determine whether the floppy disk drive door has been open since the last disk access. However, as the value of the changeline merely indicates whether the drive door has been opened, the changeline does not inform the software program driver of whether a floppy disk is or is not present in the floppy disk drive. Instead, an active changeline value merely indicates that the user has either (1) inserted a new disk into the floppy disk drive since the last access, (2) removed the floppy disk from the floppy disk drive, or (3) opened and closed the drive door without removing the floppy disk. Still, assuming that the changeline is properly functioning, the changeline is a valuable tool in determining whether the disk drive likely contains the media that the application program or device driver expects to find in the disk drive. This is because an inactive changeline indicates that the media that is currently present in the drive is the same media that was present at the time of the last floppy disk access.
The usefulness of the changeline is limited, however, because it is prone to breakage. In brief, the changeline is prone to breakage because it is a mechanical switch tied either to a logical high or a logical low voltage. This mechanical switch is toggled every time that the floppy disk drive door is opened (i.e., every time that a user inserts or removes a floppy disk to/from the floppy disk drive). As with all mechanical switches, the mechanical switch of the changeline has a limited life span due to component fatigue (e.g., metal fatigue). When the mechanical switch of the changeline breaks, the value of the changeline defaults to the inactive changeline status. Thus, a broken changeline always indicates that the disk door has not been opened since the last disk access. Under these conditions, the software program may attempt to access a disk that is not actually present in the drive. When this occurs the floppy disk controller strives to satisfy the disk access request but cannot as here is no media in the drive. After a predetermined amount of time the floppy disk controller recognizes that the access request is futile and informs the software program that the disk access request has failed. This type of failure is known as a time-out failure or simply a time-out. However, the predetermined time required for the time-out to occur is fairly long (e.g., approximately five to six seconds) and is frustrating to the user.
The usefulness of the changeline is further limited because an industry standard for an active value of the changeline does not exist. While the majority of computer systems use a high-active changeline value, some computer systems use a low-active changeline value. The discussion incorporated within refers to systems using a high-active (digital level 1) changeline value as systems using a normal logic, and refers to systems using a low-active (digital level 0) changeline value as systems using an inverted logic. The active, inactive, and broken states for the normal logic and the inverted logic are summarized in Table 1.
TABLE 1 ______________________________________ CHANGELINE CHANGELINE ACTIVE INACTIVE (DRIVE DOOR (DRIVE DOOR HAS BEEN NOT OPENED BROKEN OPENED SINCE SINCE LAST CHANGE- LAST ACCESS) ACCESS) LINE ______________________________________ Normal 1 0 0 Logic Inverted 0 1 1 Logic ______________________________________
Due to the fact that some computer manufacturers utilize the inverted logic for their changelines, a software program cannot, merely by reading a changeline value, determine the meaning of the read value. Instead, it is first necessary to determine which type of logic is employed by the computer system. In conventional systems, however, such determination is an arduous task. More specifically, conventional methods for determining whether a given computer system utilizes the normal logic or the inverted logic require the maintenance of a database. For example, International Business Machines, Incorporated (IBM.TM.) produces a popular line of computers known as the PS/2.TM.. Within this line of computers, IBM.TM. produces some machines which employ the normal logic for the changeline and produces other machines which employ the inverted logic for the changeline. In order for a software program to determine whether the machine in question uses the normal or the inverted logic, it is necessary for the software program to maintain a database of PS/2 serial numbers for the machines that use the inverted logic. In brief, the software program calls a function provided by the PS/2 system to return the serial number of the machine that the software program is operating. The software program then compares the serial number with those contained within the database. If the serial number matches one of the database serial numbers, the software program knows that it is operating on a machine which employs the inverted logic for the changeline. This method for determining whether a computer system utilizes normal or inverted logic is undesirable as maintaining the database is labor intensive. This method is also undesirable because it forces software developers to rely on hardware manufacturers to accurately supply the needed serial numbers. Reliance on hardware manufacturers is not desirable as they may supply incorrect serial numbers or may refuse to supply any serial number at all. As a result, the software program may erroneously identify, an inverted logic changeline as a normal logic changeline. When this occurs, the software program will incur the above-described lengthy time-out failures.